<idea-plugin>
    <id>org.dochub.idea.arch</id>
    <name>DocHub Architecture as code</name>
    <vendor email="r.piontik@mail.ru" url="https://dochub.info">DocHub</vendor>

    <description><![CDATA[
        <p>
            The plugin is part of the DocHub project. This project allows you to describe the architecture
            of systems in code. You can learn more about the project in the
            <a href="https://github.com/RabotaRu/DocHub/">github</a> repository or
                on website <a href="https://dochub.info">dochub.info</a>.
        </p>
        <p>
            This release includes:
            <ul>
                <li>DocHub core: v3.8.0;</li>
                <li>Suggests for the structure of architecture manifests (yaml);</li>
                <li>Suggests for the values of manifest fields;</li>
                <li>Fast navigation through manifests;</li>
                <li>Problems highlighting;</li>
                <li>JSONata file support;</li>
                <li>Mapping architecture on the code;</li>
                <li>Added the datasets and the table documents support;</li>
                <li>Refactored subsystem of metamodel validation;</li>
                <li>Document templates.</li>
                <li>Support Eclipse ELK render core;</li>
                <li>Custom entities;</li>
                <li>Mermaid support;</li>
                <li>Network diagram support;</li>
                <li>Widgets;</li>
                <li>Syntax color support in Markdown documents;</li>
                <li>Syntax color support to JSONata DevTool;</li>
                <li>Added Enterprise mode;</li>
                <li>JSONata syntax support to IDE editor.</li>
        </ul>
        </p>
    ]]></description>

    <!-- please see https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html
         on how to target different products -->
    <depends>com.intellij.modules.platform</depends>
    <depends>org.jetbrains.plugins.yaml</depends>

    <depends optional="true" config-file="java.xml">com.intellij.java</depends>

    <extensions defaultExtensionNs="com.intellij">
        <applicationService
                serviceImplementation="org.dochub.idea.arch.settings.SettingsState"/>

        <applicationConfigurable
                parentId="tools"
                instance="org.dochub.idea.arch.settings.SettingConfigurable"
                id="org.dochub.idea.arch.settings.SettingConfigurable"
                displayName="DocHub: Plugin settings"/>

        <lang.commenter language="JSONata" implementationClass="org.dochub.idea.arch.jsonata.JSONataCommenter"/>

        <toolWindow factoryClass="org.dochub.idea.arch.tools.DocHubToolWindowFactory"
                    icon="AllIcons.General.InspectionsEye"
                    anchor="right"
                    id="DocHub"
        />
        <fileType
                name="JSONata"
                implementationClass="org.dochub.idea.arch.jsonata.JSONataFileType"
                fieldName="INSTANCE"
                language="JSONata"
                extensions="jsonata"
        />
        <lang.parserDefinition
                language="JSONata"
                implementationClass="org.dochub.idea.arch.jsonata.JSONataParserDefinition"
        />
        <lang.syntaxHighlighterFactory
                language="JSONata"
                implementationClass="org.dochub.idea.arch.jsonata.JSONataSyntaxHighlighterFactory"
        />

        <lang.findUsagesProvider language="JSONata" implementationClass="org.dochub.idea.arch.findUsages.JSONataFindUsagesProvider"/>
        <lang.refactoringSupport language="JSONata" implementationClass="org.dochub.idea.arch.jsonata.psi.JSONataRefactoringSupportProvider"/>

        <!-- YAML -->
        <completion.contributor language="yaml" implementationClass="org.dochub.idea.arch.completions.YamlCompletion"/>

        <psi.referenceContributor language="yaml" implementation="org.dochub.idea.arch.references.ReferenceContributor" />

        <annotator language="yaml" implementationClass="org.dochub.idea.arch.quickfix.FixAnnotator"/>

        <languageInjectionContributor language="yaml" implementationClass="org.dochub.idea.arch.jsonata.JSONataInjector"/>

        <codeInsight.lineMarkerProvider language="yaml" implementationClass="org.dochub.idea.arch.markline.LineMarkerYaml"/>


        <!-- JSONATA -->
        <lang.braceMatcher language="JSONata" implementationClass="org.dochub.idea.arch.editor.JSONataBraceMatcher"/>

        <annotator language="JSONata" implementationClass="org.dochub.idea.arch.annotator.JSONataAnnotator"/>

        <codeInsight.lineMarkerProvider language="JSONata" implementationClass="org.dochub.idea.arch.markline.JSONataLineMarkerProvider"/>

        <completion.contributor language="JSONata" implementationClass="org.dochub.idea.arch.completion.JSONataKeywordCompletionContributor"/>

        <fileBasedIndex implementation="org.dochub.idea.arch.indexing.DocHubIndex"/>

    </extensions>

    <extensions defaultExtensionNs="JavaScript">
        <JsonSchema.ProviderFactory implementation="org.dochub.idea.arch.jsonschema.EntityJSONSchemaProviderFactory"/>
    </extensions>

    <actions>
        <action id="PopupJSONataRunAction" class="org.dochub.idea.arch.actions.PopupJSONataRunAction"
                text="Run selection as JSONata" description="Run selection as JSONata in DocHub plugin developer tool"
                icon="AllIcons.Actions.Execute">
            <add-to-group group-id="EditorPopupMenu" anchor="last"/>
        </action>
    </actions>
</idea-plugin>
